/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mabi.modular.runtime.module;

import com.mabi.modular.runtime.application.IFrontEndApp;
import com.mabi.modular.runtime.module.contributions.actions.AbstractMabiAction;
import com.mabi.modular.runtime.module.contributions.menus.MabiMenuItem;
import com.mabi.modular.runtime.module.contributions.views.ViewImpl;
import java.util.List;
import java.util.Map;

/**
 *
 * @author User
 */
public abstract class AbstractMabiModule {
   
    protected Map<String, Object> appContext;
    protected IFrontEndApp frontEndApp;

    public Map<String, Object> getAppContext() {
        return appContext;
    }

    public IFrontEndApp getFrontEndApp() {
        return frontEndApp;
    }
 
    public abstract String getName();
    public abstract String getDescription();
    public abstract float getVersion();
    public abstract List<MabiMenuItem> getMenuItems();
    public abstract List<ViewImpl> getViews();
    public abstract String getServices();
    public abstract List<AbstractMabiAction> getActions();
    
    public void setUpContext(Map<String, Object> appContext, IFrontEndApp frontEndApp){
        System.out.println("SETTING UP CONTEXT");
        this.appContext = appContext;
        this.frontEndApp = frontEndApp;
    }
    
    //public abstract String getCommands();
    //public abstract String getPermissions();
}
